The present invention generally relates to the storage and retrieval of data during the computer generation of graphics images on a video display screen. More particularly, the invention is directed to a system and method for efficiently generating, storing and retrieving clipping, masking or stenciling plane data used in conjunction with video display images rendered into a frame buffer.
The rendering, storage and eventual display of graphics images defined by computer systems is an area of technology undergoing much competition and evolution. Presently preferred systems used to generate high resolution and color range graphics images, including those involving animation and video reproduction, use high speed raster engines to convert primitives defined by central processors into color images stored as binary data in a video frequency random access memory known as a frame buffer. The data in the frame buffer is stored in a raster format corresponding to the video display, with the depth of the frame buffer, defined by bit planes, corresponding to the color resolution. The frame buffer is scanned in synchronism with the video display screen to generate the final image. High performance work stations also typically include additional bit planes, corresponding in size to the frame buffer, for storing windows and other general masking or clipping applications. As the pixel resolution of high grade video displays increases, presently typically being 1024.times.768, so too does the size of the frame buffer. Unfortunately, frame buffers use expensive VRAM chips, a cost which is further magnified for systems using double buffering.
Configurations of VRAM chips normally create frame buffers having fixed addressable ranges incremented in powers of 2, while video display screens are not so proportioned. Therefore, unused or residual portions of frame buffer memory typically remain. In the context of the 1024.times.768 pixel count graphics display screen, the typical frame buffer is 1024.times.1024 in size. Therefore, the frame buffer contains an unused or residual addressable memory space of 1024.times.256.
The depth of the residual memory corresponds to the number of the bit planes in the used portion of the frame buffer. For a graphics display having a 256 color range, the frame buffer is composed of 8 bit planes. For graphics workstations in which high color resolution is important, 24 bits of data, 8 each of RGB, are used to represent each pixel in the frame buffer.
Given the high cost of the RAM memory used in frame buffers, there exists a need for a system and method which efficiently utilizes the residual memory of a frame buffer by storing clipping plane, masking plane or stencil plane data in the residual portion memory. Any such storage, must, however, provide for high speed and low hardware complexity rendering of the clipping planes into the residual memory, and later extract the clipping planes from the residual memory at a rate matching the rendering rate into the frame buffer. Though software managed techniques are available for storing data in the residual frame buffer memory, software managed methods do not provide adequate speed for extracting and using the clipping, masking and stencil data coincident with rendering of the screen images into the frame buffer.